Data collection is ever increasing in a world wherein more and more transactions occur electronically. Indeed, certain applications, such as data mining, that are made more useful by the combination of increasing processor power and increasing availability of data, tend to inspire further data collection. This inspiration to further data collection may be seen, for instance, in the proliferation of customer reward programs. In response to this increasing availability of data, industries have been built up over recent decades around database technology. Specifically, active members of these industries include database vendors, who sell databases either individually or collectively (e.g., in a database catalog), and tool vendors, who sell software that may be used to create a new database or alter existing databases.
Relational Databases can be thought of as comprising Tables having Rows and Columns. Unfortunately, while programming practices have largely graduated from procedural techniques to object-oriented techniques, databases have not moved nearly as quickly toward object-oriented design. Hence, there is often a need for a bridge between relational databases and the object-oriented programs for exploiting the data within relational databases. The design of a given database is described by information known as “meta data”. Today, database vendors each have their own unique schema used to store meta data about each of the database types contained in a given catalog. A catalog is a database containing information about databases stored on a particular server, a group of servers, or all the servers in a domain. In addition, vendors of tools for working with databases generally provide a proprietary data store for storing a tool's understanding of a given set of meta data.
Structured Query Language (SQL) is a standard interactive and programming language for getting information from, writing information to and updating a database. SQL defines a language known as Data Definition Language (DDL) that can be used like a set of commands to create or edit meta data in a database catalog. For further information about SQL, see “ISO Final Draft International Standard (FDIS)— Database Language SQL—Part 2: Foundation (SQL/Foundation)”, March 99, which is incorporated herein by reference and referenced hereinafter as “the SQL specification”.
Consider a user employing a tool vendor's product (a tool) to edit a catalog of databases from a database vendor. The result of the use of the tool to edit the catalog is a new catalog, formed according to rules that govern the operation of the tool. The user issues commands in DDL to alter the meta data in the catalog, where the meta data is stored using a schema unique to the database vendor. The tool has to parse these commands and examine the catalog to attempt to understand the meta data, before saving an understanding of the meta data in the new catalog. In general this parsing leads to some data loss between meta data stores. Which is to say that the meta data in the new catalog is stored using a schema proprietary to the tool vendor. The schema is likely different from the schema used by the database vendor.
As soon as database or tool vendors wish to share meta data, the vendors run into this data loss problem. In general, to have complete support, bridges are built between a pair of vendors to translate the meta data. These bridges are maintenance-intensive and very vendor-pair specific. One alternative is to use a “lowest common denominator” approach, wherein only the data classifications that the two vendors share in common may be translated. Although not as maintenance-intensive, this approach is very vendor-pair specific and data loss is typically an even greater problem.